It is important for software developers and others to understand computer programs, or portions of programs. Various software analysis tools may assist by providing information pertaining to the results of executing a program. One type of tool keeps track of the sequence of instructions that are executed during a program's execution. It may then provide information that indicates which instructions were executed, the number of times each instruction was executed, or the sequence of the executed instructions. A developer may use the output of such a tool to determine whether the program behaved as expected, which parts of the program are the most frequently executed parts, or for other analytic reasons.
Computer programs can be very complex to develop, to debug, and to understand. It is advantageous to developers and others to have tools that assist in understanding programs in a variety of situations.